package org.micro.test.demo.service;

import org.micro.test.demo.entity.UserEntity;

import java.util.List;
import java.util.Map;

/**
 * Demo服务接口
 *
 * @author lry
 * @version v1.0.0
 * @apiNote 用一句话描述该文件做什么
 * @since 2018-04-10 13:00:31
 */
public interface IDemoService {

    /**
     * Hi接口
     *
     * @return Hi回答信息
     * @author lry
     * @apiNote 用一句话描述该方法是做什么的
     * @since 2018-04-10 13:00:31
     */
    @Deprecated
    String hi();

    /**
     * 用户Hello
     *
     * @param name 用户名称
     * @return Hello回答信息
     * @author lry
     * @apiNote 用一句话描述该方法是做什么的
     * @since 2018-04-10 13:00:31
     */
    String hello(String name);

    /**
     * 查询单个用户信息
     *
     * @param id 用户ID
     * @return 用户信息
     * @author lry
     * @apiNote 用一句话描述该方法是做什么的
     * @since 2018-04-10 13:00:31
     */
    UserEntity getUser(String id);

    /**
     * 查询用户列表
     *
     * @param userEntity 查询用户条件
     * @return 用户列表
     * @author echo
     * @apiNote 用一句话描述该方法是做什么的
     * @since 2018-04-20 13:00:31
     */
    Map<String, UserEntity> query(UserEntity userEntity);

    /**
     * 关键词查询
     *
     * @param keyword    header,关键词
     * @param userEntity 用户实体
     * @return 查询结果
     * @throws NullPointerException     空指针异常
     * @throws IllegalArgumentException 非法参数异常
     * @author echo
     * @apiNote 用一句话描述该方法是做什么的
     * @since 2018-04-20 13:00:31
     */
    List<UserEntity> getUsers(String keyword, UserEntity userEntity) throws NullPointerException, IllegalArgumentException;

}
